﻿using SistemaFinanceiro.classes.entidades;
using SistemaFinanceiro.classes.negocio;

namespace SistemaFinanceiro.classes.core
{
    class Fachada
    {
        private static Fachada instancia;

        public static Fachada Instancia
        {
            get
            {
                if (instancia == null)
                {
                    instancia = new Fachada();
                }
                return instancia;
            }
        }

        private Fachada()
        {
            cartaoNegocio = new CartaoNegocio();
            usuarioNegocio = new UsuarioNegocio();
            rendaNegocio = new RendaNegocio();

        }

        private CartaoNegocio cartaoNegocio;

        public CartaoNegocio CartaoNegocio
        {
            get { return cartaoNegocio; }
        }

        private UsuarioNegocio usuarioNegocio;

        public UsuarioNegocio UsuarioNegocio
        {
            get { return usuarioNegocio; }
        }

        private Usuario usuarioLogado;

        public Usuario UsuarioLogado
        {
            get { return usuarioLogado; }
            set { usuarioLogado = value; }
        }

        private RendaNegocio rendaNegocio;

        public RendaNegocio RendaNegocio
        {
            get { return rendaNegocio; }
            set { rendaNegocio = value; }
        }


        public Usuario AutenticarUsuario(string usuario, string senha)
        {
            usuarioLogado = usuarioNegocio.AutenticarUsuario(usuario, senha);
            return usuarioLogado;
        }

        public void DesautenticarUsuario()
        {
            usuarioLogado = null;
        }
    }
}
